package com.szholly.pro.watergas_server.common.util;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class DateHelper {
	/**
	 * 获取某月的最后一天
	 * @param year
	 * @param month 月份，取值 1-12
	 * @return 返回当月最后一天的字符串形式：YYYY-MM-DD
	 */
    public static String getLastDayOfMonth(int year,int month){
        Calendar cal = Calendar.getInstance();
        //设置年份
        cal.set(Calendar.YEAR,year);
        //设置月份
        cal.set(Calendar.MONTH, month-1);
        //获取某月最大天数
        int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
        //设置日历中月份的最大天数
        cal.set(Calendar.DAY_OF_MONTH, lastDay);
        //格式化日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String lastDayOfMonth = sdf.format(cal.getTime());
         
        return lastDayOfMonth;
    }
    /**
	 * 获取某月的第一天
	 * @param year
	 * @param month 月份，取值 1-12
	 * @return 返回当月第一天的字符串形式：YYYY-MM-DD
	 */
    public static String getFirstDayOfMonth(int year,int month){
        Calendar cal = Calendar.getInstance();
        //设置年份
        cal.set(Calendar.YEAR,year);
        //设置月份
        cal.set(Calendar.MONTH, month-1);
        //获取某月最大天数
        int firstDay = cal.getActualMinimum(Calendar.DAY_OF_MONTH);
        //设置日历中月份的最大天数
        cal.set(Calendar.DAY_OF_MONTH, firstDay);
        //格式化日期
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        String firstDayOfMonth = sdf.format(cal.getTime());
         
        return firstDayOfMonth;
    }
    
    /**
     * 获取某年某月多少天
     * @param year
     * @param month 月份，取值 1-12
     * @return 返回当月的总天数
     */
    public static int getDayCountOfMonth(int year,int month){
    	Calendar cal = Calendar.getInstance();
    	//设置年份
    	cal.set(Calendar.YEAR,year);
    	//设置月份
    	cal.set(Calendar.MONTH, month-1);
    	//获取某月最大天数
    	int lastDay = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
    	
    	return lastDay;
    }
    
    /**
	 * 获取某个季度的第一天
	 * @param year
	 * @param quarter 季度，取值 1-4
	 * @return 返回当月第一天的字符串形式：YYYY-MM-DD
	 */
    public static String getFirstDayOfQuarter(int year,int quarter){
        return getFirstDayOfMonth(year,3*quarter-2);
    }
    
    /**
	 * 获取某个季度的最后一天
	 * @param year
	 * @param quarter 季度，取值 1-4
	 * @return 返回的字符串形式：YYYY-MM-DD
	 */
    public static String getLastDayOfQuarter(int year,int quarter){
        return getLastDayOfMonth(year,3*quarter);
    }
}